package com.afterRain.admin.controller;

import java.util.Date;

import com.afterRain.commonly.Prompt;
import com.afterRain.model.GoodsType;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.POST;
import com.jfinal.kit.JsonKit;
import com.jfinal.plugin.activerecord.Page;

/**
* @author 作者 E-mail:
* @version 创建时间：2017年5月17日 下午2:06:17
* 类说明
*/
public class GoodsController extends Controller{
 
	/**
	 * enter the type query page
	 */
	public void typelist(){
		int page = getParaToInt("page")==null?1:getParaToInt("page");
		int pageSize = getParaToInt("pageSize")==null?10:getParaToInt("pageSize");
		int parent_id = getParaToInt("parent_id")==null?0:getParaToInt("parent_id");
		Page<GoodsType> lists = GoodsType.dao.paginateByFullSql(page, pageSize, "select count(id) from `goods_type` where `parent_id`="+parent_id, "select * from `goods_type` where `parent_id`="+parent_id+" ORDER BY `order`" );
		setAttr("data", lists);
		setAttr("parent", GoodsType.dao.findById(parent_id));
		render("typelist.ftl");
	}
	
	/**
	 * enter the type info page
	 */
	public void typeinfo(){
		int id =getParaToInt("id")==null?0:getParaToInt("id");
		int parent_id = getParaToInt("parent_id")==null?0:getParaToInt("parent_id");
		if(id != 0){
			GoodsType goodsType = GoodsType.dao.findById(id);
			setAttr("goodsType", JsonKit.toJson(goodsType));
		}
		setAttr("parent", GoodsType.dao.findById(parent_id));
		render("typeinfo.ftl");
	}
	
	/**
	 * type update or insert 
	 */
	@Before(POST.class)
	public void typeupdate(){
		GoodsType goodsType = getModel(GoodsType.class,"");
		if(goodsType.getId() == null){
			goodsType.setCreateDate(new Date());
			//insert error
			if(!goodsType.save()){
				renderJson(Prompt.saveerror);
				return ;
			}
			goodsType.setOrder(goodsType.getId());
			goodsType.update();
			renderJson(Prompt.success);
			return ;
		}
		//can't update parent_id
		GoodsType goodsType2 = GoodsType.dao.findById(goodsType.getId());
		goodsType.setParentId(goodsType2.getParentId());
		//perform update
		if(goodsType.update()){
			renderJson(Prompt.success);
			return ;
		}
		renderJson(Prompt.saveerror);
	}
	
	
}
